Conversation
|
🧪 Testing To try out this version of the SDK, run: Expires at: Thu, 19 Mar 2026 18:29:40 GMT |
120bb11 to
4b2b78d
Compare
4b2b78d to
bc92b91
Compare
bc92b91 to
2674257
Compare
|
🤖 Release is at https://github.com/digitalocean/gradient-python/releases/tag/v3.11.0 🌻 |
There was a problem hiding this comment.
Pull request overview
Automated 3.11.0 release PR that updates the generated SDK to the latest OpenAPI spec, adding new API surface (Responses, Billing insights, Apps job invocation cancel) and extending Knowledge Base chunking configuration, along with internal client/serialization enhancements and version/dependency bumps.
Changes:
- Add new API resources:
responses.create,billing.list_insights, andapps.job_invocations.cancel(+ associated types/tests/docs). - Extend Knowledge Base data source and create params/models with chunking algorithm/options and add a data source
updateendpoint. - Update client internals to support raw/streaming request bodies via
contentand to serialize JSON bodies with a custom encoder (openapi_dumps); bump version to3.11.0.
Reviewed changes
Copilot reviewed 67 out of 69 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/test_utils/test_json.py | Adds unit tests for openapi_dumps JSON serialization behavior. |
| tests/api_resources/test_responses.py | Adds generated tests for new responses.create endpoint (skipped). |
| tests/api_resources/test_knowledge_bases.py | Updates KB tests to include new chunking fields. |
| tests/api_resources/test_billing.py | Adds generated tests for new billing insights endpoint (skipped). |
| tests/api_resources/knowledge_bases/test_data_sources.py | Updates data source tests and adds coverage for new update method (skipped). |
| tests/api_resources/gpu_droplets/test_images.py | Adjusts test fixture values for GPU droplet image creation. |
| tests/api_resources/apps/test_job_invocations.py | Adds generated tests for Apps job invocation cancellation (skipped). |
| tests/api_resources/apps/init.py | Adds package marker for generated apps tests. |
| tests/api_resources/agents/test_evaluation_test_cases.py | Updates agent evaluation test case creation params in tests. |
| tests/api_resources/agents/test_evaluation_runs.py | Updates agent evaluation run creation params in tests. |
| tests/api_resources/agents/test_evaluation_datasets.py | Updates evaluation dataset creation params in tests. |
| src/gradient/types/shared/create_response_stream_response.py | Adds streamed response chunk model for Responses API. |
| src/gradient/types/shared/create_response_response.py | Adds non-streaming response model for Responses API. |
| src/gradient/types/shared/completion_usage.py | Extends completion usage model with cache-related fields. |
| src/gradient/types/shared/init.py | Exposes new Responses types via shared types package. |
| src/gradient/types/retrieve_documents_params.py | Removes a trailing whitespace line in params typing. |
| src/gradient/types/response_create_params.py | Adds request params typing for Responses API. |
| src/gradient/types/knowledge_bases/data_source_update_response.py | Adds response model for KB data source update. |
| src/gradient/types/knowledge_bases/data_source_update_params.py | Adds params typing for KB data source update. |
| src/gradient/types/knowledge_bases/data_source_create_params.py | Adds chunking params support for KB data source create. |
| src/gradient/types/knowledge_bases/api_knowledge_base_data_source.py | Adds chunking fields to KB data source model. |
| src/gradient/types/knowledge_bases/init.py | Exposes new KB update params/response types. |
| src/gradient/types/knowledge_base_create_params.py | Adds chunking fields/options for KB create datasource config. |
| src/gradient/types/chat/completion_create_params.py | Adds cache_control typing for chat message content parts. |
| src/gradient/types/billing_list_insights_response.py | Adds response model for billing insights. |
| src/gradient/types/billing_list_insights_params.py | Adds params typing for billing insights query parameters. |
| src/gradient/types/apps/job_invocation_cancel_response.py | Adds response model for Apps job invocation cancel. |
| src/gradient/types/apps/job_invocation_cancel_params.py | Adds params typing for Apps job invocation cancel. |
| src/gradient/types/apps/init.py | Exposes apps types package. |
| src/gradient/types/api_model.py | Adds KB chunk size hints to model metadata. |
| src/gradient/types/api_agent_model.py | Adds KB chunk size hints to agent model metadata. |
| src/gradient/types/agents/evaluation_test_case_create_params.py | Adds agent_workspace_name to evaluation test case create params. |
| src/gradient/types/agents/evaluation_run_create_params.py | Adds agent_deployment_names and clarifies legacy agent UUIDs. |
| src/gradient/types/agents/evaluation_dataset_create_params.py | Adds dataset_type enum to evaluation dataset create params. |
| src/gradient/types/agents/chat/completion_create_params.py | Mirrors chat cache_control typing changes for agents chat. |
| src/gradient/types/agents/api_evaluation_run.py | Adds agent_deployment_name to evaluation run model. |
| src/gradient/types/agents/api_evaluation_prompt.py | Adds evaluation trace spans and trace id to prompt model. |
| src/gradient/types/init.py | Exposes newly added public types (responses, billing, etc.). |
| src/gradient/resources/retrieve.py | Expands docs describing hybrid search behavior. |
| src/gradient/resources/responses.py | Adds Responses API resource supporting streaming and non-streaming create. |
| src/gradient/resources/knowledge_bases/knowledge_bases.py | Minor formatting changes for validation/errors and wrapper properties. |
| src/gradient/resources/knowledge_bases/data_sources.py | Adds chunking params to create and introduces data source update endpoint. |
| src/gradient/resources/billing.py | Adds Billing resource with list_insights. |
| src/gradient/resources/apps/job_invocations.py | Adds Apps JobInvocations resource with cancel. |
| src/gradient/resources/apps/apps.py | Adds Apps resource namespace and response wrappers. |
| src/gradient/resources/apps/init.py | Exports apps resources. |
| src/gradient/resources/init.py | Registers new resources (apps, billing, responses) in top-level exports. |
| src/gradient/_version.py | Bumps SDK version to 3.11.0. |
| src/gradient/_utils/_json.py | Introduces openapi_dumps with custom JSON encoding (datetime/pydantic). |
| src/gradient/_utils/_compat.py | Adds typing ignore for union comparison overlap. |
| src/gradient/_types.py | Adds BinaryTypes / AsyncBinaryTypes for raw/streaming request content. |
| src/gradient/_models.py | Extends request options to support content (binary/iterable bodies). |
| src/gradient/_compat.py | Extends model_dump wrapper with by_alias support. |
| src/gradient/_client.py | Registers new resources on the client (apps, billing, responses) and wrappers. |
| src/gradient/_base_client.py | Adds content plumbing for requests and uses openapi_dumps for JSON bodies. |
| requirements.lock | Updates locked runtime dependency versions. |
| requirements-dev.lock | Updates locked dev dependency versions. |
| pyproject.toml | Bumps project version to 3.11.0. |
| api.md | Updates generated API documentation for new endpoints/types. |
| CHANGELOG.md | Adds 3.11.0 changelog entry. |
| .stats.yml | Updates Stainless/OpenAPI generation metadata. |
| .release-please-manifest.json | Updates release-please manifest to 3.11.0. |
| .github/workflows/release-doctor.yml | Updates workflow checkout action version. |
| .github/workflows/publish-pypi.yml | Updates workflow checkout action version. |
| .github/workflows/ci.yml | Updates workflow checkout action version (inconsistently across jobs). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| elif not files: | ||
| # Don't set content when JSON is sent as multipart/form-data, | ||
| # since httpx's content param overrides other body arguments | ||
| kwargs["content"] = openapi_dumps(json_data) if is_given(json_data) and json_data is not None else None |
There was a problem hiding this comment.
When json_data is explicitly set to None (and is considered “given”), the previous behavior using httpx's json= would send a JSON null body. This new logic sets content=None, which results in an empty body instead. If any endpoints rely on an explicit JSON null, this is a behavioral regression. Consider encoding None as b"null" (or using openapi_dumps(json_data) without the json_data is not None guard) when is_given(json_data) is true.
| kwargs["content"] = openapi_dumps(json_data) if is_given(json_data) and json_data is not None else None | |
| kwargs["content"] = openapi_dumps(json_data) if is_given(json_data) else None |
Automated Release PR
3.11.0 (2026-02-17)
Full Changelog: v3.10.1...v3.11.0
Features
Bug Fixes
Chores
This pull request is managed by Stainless's GitHub App.
The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.
For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.
🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions